AlaskaLinuxUser's Scratchpad

Commit thy works unto the LORD, and thy thoughts shall be established. - Proverbs 16:3

Rebuilding a city simulator for Ubuntu Touch

20260406.png

Months ago, when I was updating old Ubuntu Touch applications built for Xenial to Focal and then Noble, I ran across a real gem: Citysim [1]. Similar to "Sim City" in design and concept, it is, of course, a game in which you build cities. The game itself launches and has some beautiful low-polly artwork, and while it is "playable", it really isn't yet a "game". When it was built, it was considered a demo rather than a finished project, and was built by the author while they learned to code.

I spoke with the original author, and they do not intend to finish the project, and said I was more than welcome to fork it and finish making the game. Back when we had this conversation, I was buried up to my neck in projects as I was working through the process of attempted app updates on over 200 apps. Now that things have slowed down a bit, I would like to continue work on this game.

More like a foundation than a game, the original author created a visually stunning framework for creating the city simulator, all in QML, with logic coded in javascript with a little c++. The main interface is complete for desktop or touch screen and is very intuitive. The side bar scrolls up and down, allowing you to choose buildings from the list to create by clicking on squares on the board or map. Visually, I feel like all of the hard work is done. But, that's where it ends. Currently, it has no "point" or "goal". You can't "win" or "lose". The population doesn't increase or decrease, though your money, UBcoins, does go up and down.

The main question is then, what makes a city simulator a game? I think the answer is goals. Goals I can think of would be:

  • Population size
  • Income level
  • Production level
  • Pollution control
  • Crime control
  • Fire control
  • Disaster recovery

With these goals in mind, I was wondering what I wanted game play to feel like. E.g., when you are playing the game, do you want finite control over everything? Do you want to be busy all the time? Constantly scrolling around and putting out fires, clicking on dollar signs and setting up block parties? I decided on none of these.

I would like the game play to feel relaxing. I want this to be a time killer where you are on the bus and have 15 minutes, so you jump into your city simulator and chill. Build a few roads, throw in a farm or two, and sit back and enjoy the show. I want the city to take care of itself. Roads will not just "collapse". If there is a fire, the fire department puts it out. You don't have to dispatch police officers to a crime scene. A real mayor deals in city planning and budgets, not micromanaging hospital staff.

And that's how I plan to build the game. If you want to join me on the journey, you can follow along on Gitlab. [2]

Linux - keep it simple.

[1] https://github.com/zubozrout/citysim-ubuntutouch [2] https://gitlab.com/alaskalinuxuser/citysim-ubuntutouch